#include <iostream>
#include <math.h>

bool
is_perfect(std::size_t n)
{
  std::size_t m = (std::size_t)ceil(sqrt(n));
  std::size_t sum = 0;

  for (std::size_t i = 1; i < m; ++i)
    {
      if (n % i == 0)
	{
	  sum += i;
	  if (i > 1 && i*i < n)
	    {
	      sum += (n/i);
	    }

	  if (sum > n) 
	    {
	      return false;
	    }
	}
    }
  
  return (sum == n);
}

int main()
{
  for (std::size_t i = 2; i < 10000; ++i)
    {
      if (is_perfect(i))
	{
	  std::cout << i << std::endl;
	}
    }
}
